home *** CD-ROM | disk | FTP | other *** search
- 5 KEY OFF
- 10 LN=0 :W=3 :S$=" SECTOR ":SX$="="
- 15 WIDTH 40 :NC=10: ND=5: NS=4
- 20 DIM A(NC,10),C(NC,10),N$(NC),D$(ND),L$(NS)
- 30 DIM TA(5),TC(5),DA(5,5),DC(5,5),XX(5)
- 40 DATA "N.AMERICA","AUSTRALIA","S.AMERICA","RUSSIA","JAPAN","AFRICA"
- 50 DATA "KOREA","CHINA","GREENLAND","ENGLAND"
- 60 DATA "TROOPS","PLANES","ARTILLARY","TANKS","MISSLES"
- 70 DATA "NORTH","SOUTH","EAST","WEST"
- 80 FOR X=1 TO NC : READ N$(X) : NEXT X
- 90 FOR I= 1 TO ND: READ D$(I) : NEXT I
- 100 FOR I= 1 TO NS:READ L$(I) : NEXT I
- 101 DATA .9,200,75,100,0
- 102 DATA .001,1.1,.01,.01,.5
- 103 DATA .01,1.1,.01,.01,.5
- 104 DATA .005,3,1,1.1,2
- 105 DATA .001,1,.25,.3,1
- 106 FOR IA=1 TO 5
- 107 FOR ID=1 TO 5
- 108 READ WT(IA,ID)
- 109 NEXT ID
- 110 NEXT IA
- 119 REM=======================================================================
- 120 REM INITIALIZE VALUES
- 130 REM=======================================================================
- 135 X=VAL(RIGHT$(TIME$,1)): RANDOMIZE X
- 140 FOR I=1 TO NC: C(I,1)=INT(5000*RND)*10: NEXT I
- 150 FOR I=1 TO NC
- 160 FOR J=2 TO ND: C(I,J)=25+INT(50*RND): NEXT J
- 170 NEXT I
- 180 FOR I=1 TO NC
- 190 FOR X=6 TO 10 : C(I,X)=INT(4*RND)+1 :NEXT X
- 200 NEXT I
- 210 FOR X=1 TO 5
- 220 FOR J=1 TO 10
- 230 A(X,J)=C(X,J) : C(X,J)=0
- 240 NEXT J
- 250 NEXT X
- 260 REM====================================================================
- 270 REM START GAME
- 280 REM====================================================================
- 290 COLOR 0,7 : CLS:PRINT "WORLD CONQUEST GAME"
- 300 PRINT "COPYRIGHT 6/1/82":PRINT "BY Dorn W. Stickle "
- 301 PRINT STRING$(40,SX$)
- 310 FOR I=1 TO 3000: NEXT I
- 320 Y6=Y6+1
- 330 REM--------------------------SELECT MANUEVER
- 340 SCREEN 1:COLOR 9,7:CLS:PRINT " AVAILABLE MANUEVERS
- 350 PRINT
- 360 PRINT
- 370 PRINT "1. DISPLAY ALLIES DEFENSE STATUS
- 380 PRINT "2. TRANSPORT DEFENSES
- 390 PRINT "3. REVIEW GLOBAL STATUS
- 400 PRINT "4. SPY MISSION
- 410 PRINT "5. ATTACK ANOTHER COUNTRY
- 420 PRINT
- 430 PRINT
- 440 PRINT
- 450 INPUT "MANUEVER ";M
- 460 IF M>5 OR M<1 THEN 340
- 470 ON M GOTO 1000,2000,3000,4000,5000
- 1000 REM=====================================================================
- 1010 REM DISPLAY COUNTRY STATUS
- 1020 REM=====================================================================
- 1030 CLS:COLOR 11,7:PRINT TAB(35);"LIST OF COUNTRIES":PRINT :PRINT :PRINT :PRINT
- 1040 FOR I= 1 TO 10
- 1050 PRINT " ";I,N$(I)
- 1060 NEXT I
- 1070 PRINT :PRINT :PRINT :INPUT "ENTER COUNTRY ";R
- 1080 IF R<1 OR R>10 THEN 1030
- 1085 CLS:PRINT "REVIEW OF ALLY DEFENSES IN ";N$(R):PRINT STRING$(39,"=")
- 1090 PRINT "DEFENSE";TAB(10);"QUANTITY";TAB(25);"LOCATION"
- 1100 PRINT STRING$(40,SX$)
- 1110 FOR X=1 TO 5
- 1120 PRINT D$(X);TAB(10);A(R,X);TAB(25);L$(A(R,X+5))+S$
- 1130 NEXT X
- 1140 PRINT :PRINT :INPUT "HIT ENTER TO CONTINUE ";Q$
- 1150 GOTO 330
- 2000 REM======================================================================
- 2010 REM TRANSPORT DEFENSES
- 2020 REM======================================================================
- 2030 CLS:COLOR 12,7:PRINT TAB(35);"LIST OF COUNTRIES":PRINT :PRINT :PRINT :PRINT
- 2040 FOR I=1 TO 10
- 2050 PRINT " ";I,N$(I)
- 2060 NEXT I
- 2070 PRINT :PRINT :PRINT :INPUT "ENTER COUNTRY ( FROM,TO )";F,T
- 2080 IF F<1 OR F>10 OR T<1 OR F>10 THEN 2030
- 2090 CLS:PRINT TAB(35);"LIST OF DEFENSES ":PRINT :PRINT :PRINT :PRINT
- 2100 FOR I=1 TO 5
- 2110 PRINT I,D$(I)
- 2120 NEXT I
- 2130 PRINT :PRINT :PRINT :PRINT :PRINT :PRINT
- 2140 INPUT "WHICH DEFENSE DO YOU WANT TO TRANSPORT ";D
- 2150 IF D<1 OR D>5 THEN 2090
- 2160 INPUT "QUANTITY TO TRANSPORT ";Q
- 2170 IF Q>A(F,D) THEN PRINT "YOU ONLY HAVE ";A(F,D);" IN ";N$(F):GOTO 2160
- 2180 A(T,D)=A(T,D)+Q :A(F,D)=A(F,D)-Q
- 2190 CLS:PRINT "WHICH SECTOR "
- 2200 FOR I= 1 TO 4 :PRINT I,L$(I) :NEXT I
- 2210 PRINT :PRINT :PRINT :INPUT L
- 2220 IF L<1 OR L>4 THEN 2190
- 2230 A(T,D+5)=L
- 2240 IF INT(RND*100)>25 THEN 2260
- 2250 GOSUB 7200
- 2260 PRINT :PRINT :PRINT :INPUT "HIT ENTER TO CONTINUE ";Q$ :GOTO 330
- 2270 REM=======================================================================
- 3000 REM GLOBAL REPORT
- 3010 REM=======================================================================
- 3020 CLS:COLOR 7,0:PRINT :PRINT :PRINT TAB(15);"GLOBAL REPORT"
- 3024 PRINT STRING$(40,"=")
- 3025 PRINT TAB(15);"TROOPS";TAB(30);"ALLIES "
- 3030 PRINT TAB(10);"ALLIES ";TAB(20);"ENEMY ";TAB(30)"POSSESSION"
- 3040 PRINT STRING$(40,"=")
- 3050 FOR I=1 TO 10
- 3060 PRINT N$(I);TAB(12);A(I,1);TAB(21);C(I,1);
- 3070 K2=0:FOR J=1 TO 5 : IF C(I,J)<>0 THEN K2=K2+1
- 3080 NEXT J
- 3090 IF K2=0 THEN PRINT TAB(33); "YES"
- 3091 IF K2<>0 THEN PRINT TAB(33);"NO"
- 3100 NEXT I
- 3110 PRINT :PRINT :PRINT :INPUT "HIT ENTER TO CONTINUE";Q$ :GOTO 330
- 3120 REM======================================================================
- 4000 REM SPY MISSION
- 4010 REM======================================================================
- 4020 CLS:COLOR 12,7:PRINT TAB(20) "SPY MISSION OVER ":PRINT :PRINT
- 4030 FOR I= 1 TO 10
- 4040 PRINT I,N$(I)
- 4050 NEXT I
- 4060 PRINT :PRINT :INPUT "WHICH COUNTRIES (FROM,TO) ";F,T
- 4070 IF A(F,2)<10 THEN PRINT "YOU DONT HAVE ENEOUGH PLANES IN ";N$(F): INPUT "HIT ENTER TO CONTINUE ";Q$ : GOTO 330
- 4080 REM----------------------------------------
- 4090 A(F,2)=A(F,2)-10
- 4100 CLS:PRINT :PRINT :PRINT TAB(20);"SPY MISSION REPORT OF " ;N$(T)
- 4110 PRINT STRING$(40,"=")
- 4120 IF INT(RND*100)<26 THEN PRINT "ALL PLANES LOST TO AIR DEFENSES OF ";N$(T):INPUT "HIT ENTER TO CONTINUE ";Q$:GOTO 330
- 4130 PRINT "DEFENSE","QUANTITY","LOCATION"
- 4140 PRINT STRING$(40,SX$)
- 4150 FOR X=1 TO 5
- 4160 XP=INT(RND*100)
- 4170 IF XP<30 THEN GOTO 4230
- 4180 PRINT D$(X),C(T,X);
- 4190 K1=X+5
- 4200 IF C(T,K1)=0 THEN 4230
- 4210 K2=C(T,K1)
- 4220 PRINT TAB(34);L$(K2)
- 4230 NEXT X
- 4240 PRINT :PRINT :PRINT :INPUT "HIT ENTER TO CONTINUE ";Q$:GOTO 330
- 4250 REM=======================================================================
- 5000 REM=======================================================================
- 5010 REM ATTACK ALGORITHMS
- 5020 REM=======================================================================
- 5030 REM ATTACKER: 1. TROOPS 2.PLANES 3.ARTILLARY 4.TANKS 5.MISSLES
- 5040 REM-----------------------------------------------------------------
- 5050 REM DEFENDER: ! ! ! ! !
- 5060 REM 1.TROOPS ! 0.9 ! 200 ! 75 ! 100 ! 0
- 5070 REM 2.PLANES ! .001 ! 1.1 ! .01 ! .01 ! .5
- 5080 REM 3.ARTILLARY ! .01 ! 5 ! 1 ! 1.3 ! 2
- 5090 REM 4.TANKS ! .005 ! 3 ! 1 ! 1.1 ! 2
- 5100 REM 5.MISSLES ! .001 ! 1 ! .25 ! .3 ! 1
- 5110 REM-----------------------------------------------------------------------
- 5220 REM-----------------------------------------------------------------------
- 5225 T1=0:T2=0
- 5230 FOR IC=1 TO 10
- 5240 FOR J=1 TO 5:IF A(IC,J)>0 THEN T1=1
- 5250 IF C(IC,J)>0 THEN T2=1
- 5260 NEXT J
- 5270 IF T1=0 OR T1=0 THEN
- 5280 FOR ID=1 TO 5: FOR IA=1 TO 5:DA(IA,ID)=0:DC(IA,ID)=0:NEXT IA:NEXT ID
- 5290 REM---------------------------------------------------------------------
- 5300 FOR ID=1 TO 5
- 5310 TA(ID)=0 :TC(ID)=0
- 5320 REM-------------------------------------------CALCULATE MAXIMUM CASUALTIES
- 5330 FOR IA=1 TO 5
- 5340 DA(ID,IA)=INT(WT(IA,ID)*RND*C(IC,IA))
- 5350 IF A(IC,ID)<=0 THEN DA(ID,IA)=0
- 5360 TA(ID)=TA(ID)+DA(ID,IA)
- 5370 DC(ID,IA)=INT(WT(IA,ID)*RND*A(IC,IA))
- 5380 IF C(IC,ID)<=0 THEN DC(ID,IA)=0
- 5390 TC(ID)=TC(ID)+DC(ID,IA)
- 5400 REM----------------------------------RESTRICT CASUALTIES TO EXISTING #S
- 5410 IF TA(ID)>=A(IC,ID) THEN TA(ID)=A(IC,ID)
- 5420 IF TC(ID)>=C(IC,ID) THEN TC(ID)=C(IC,ID)
- 5430 LA(IC,ID)=TA(ID): LC(IC,ID)=TC(ID)
- 5440 NEXT IA
- 5450 NEXT ID
- 5460 REM-----------------------------------PRINT LOSSES
- 5465 IX=IC+2
- 5466 IF IX=7 THEN IX=2
- 5470 COLOR IX,7:CLS
- 5480 PRINT "BATTLE FOUGHT IN ";N$(IC)
- 5490 PRINT STRING$(40,"=")
- 5500 PRINT"ALLIES CASUALTIES:"
- 5520 PRINT TAB(10) ;"PREVIOUS LOSSES PRESENT"
- 5530 PRINT STRING$(39,"-")
- 5535 SUMX=0
- 5540 FOR ID=1 TO 5
- 5550 X=A(IC,ID) :A(IC,ID)=X-LA(IC,ID)
- 5560 PRINT D$(ID);TAB(10);X;TAB(20);LA(IC,ID);TAB(30);A(IC,ID)
- 5564 SUMX=SUMX+LA(IC,ID)
- 5565 NEXT ID
- 5570 PRINT STRING$(40,"=")
- 5580 PRINT :PRINT"ENEMY CASUALTIES:"
- 5600 PRINT TAB(10) ;"PREVIOUS LOSSES PRESENT"
- 5610 PRINT STRING$(39,"-")
- 5620 FOR ID=1 TO 5
- 5630 X=C(IC,ID) :C(IC,ID)=X-LC(IC,ID)
- 5635 SUMX=SUMX+LC(IC,ID)
- 5640 PRINT D$(ID);TAB(10);X;TAB(20);LC(IC,ID);TAB(30);C(IC,ID)
- 5645 NEXT ID
- 5646 IF IC<>10 THEN 5650
- 5647 FOR J=1 TO 1800:NEXT J
- 5650 IF SUMX=0 THEN 5660
- 5658 INPUT "HIT ENTER TO CONTINUE ";Q$
- 5660 NEXT IC
- 5670 GOTO 330
- 7200 REM-----------------------------------------TRANSPORT LOSS SUBROUTINE
- 7210 R=INT(100*RND(RX))+1
- 7220 X2=INT(RND(RX)*10)+2
- 7230 IF D=1 THEN X2=INT(100*RND(RX))+2
- 7240 IF A(T,D)<=X2 THEN X2=A(T,D)
- 7250 A(T,D)=A(T,D)-X2
- 7260 IF R<33 THEN PRINT "GURELLA FORCE ATTACK ON THE ";L$(A(T,D+5))+S$:GOTO 7290
- 7270 IF R<66 THEN PRINT "TRANSPORT SHIP SUNK AT SEA ":GOTO 7290
- 7280 PRINT "AMBUSH DURING TRANSPORT "
- 7290 PRINT " YOU JUST LOST ";X2;D$(D)
- 7300 PRINT " TOTAL ARRIVED IN ";N$(T); " = ";A(T,D)
- 7310 RETURN
- 7380 REM=====================================================================
-